package demo1;

class Animal {
    public String name;
    public int age;
    private void add() {
        System.out.println("父类 的 add方法");
    }
    public void fun () {
        System.out.println("父类的方法");
    }
}
class Dog extends Animal {
    public String name;
    public String color;
    public void add() {
        System.out.println("派生类的add方法");
    }

    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    //子类有  那么就拿子类的  子类没有  就拿父类的
    public void func () {
        System.out.println(name + "正在吃饭 "); // 如果父类 和 子类 有同名的成员变量 优先访问  子类自己的
        System.out.println(super.name + "正在吃饭"); // 加上super 这样的话访问的就是 父类的name了
        System.out.println(age + " 岁了");
        System.out.println("颜色是 : " + color);

    }
}
class DollDog extends Dog {
    public void funs () {
        System.out.println("DollDog 的funs方法");
    }

    @Override
    public void add() {
        System.out.println("重写了 Dog 的 add方法");
    }
}
public class Test {
    public static void main(String[] args) {
        Test[] tests = new Test[5];
        System.out.println(tests[0]);
        Animal animal = new DollDog();
        if (animal instanceof Dog) {
            Dog dog = (Dog) animal;
            dog.add();
        }

    }
}
